Object Information Derived From Object Images

ABSTRACT

Search terms are derived automatically from images captured by a camera equipped cell phone, PDA, or other image capturing device submitted to a search engine to obtain information of interest, and at least a portion of the resulting information is transmitted back locally to, or nearby, the device that captured the image.

This application is a divisional of Ser. No. 14/569,766, filed Dec. 14,2014 which is a divisional of Ser. No. 14/187,717, filed Feb. 24, 2014and issued Oct. 6, 2015 as U.S. Pat. No. 9,152,854, which is adivisional of Ser. No. 13/858,897, filed Apr. 8, 2013 and issued Jul.29, 2014 as U.S. Pat. No. 8,792,750, which is a divisional of Ser. No.13/705,071, filed Dec. 4, 2012 and issued Aug. 27, 2013 as U.S. Pat. No.8,520,897, which is a continuation of Ser. No. 13/207,230, filed Aug.10, 2011 and issued Dec. 4, 2012 as U.S. Pat. No. 8,326,038, which is adivisional of Ser. No. 13/037,330 filed Feb. 28, 2011 and issued Jul.10, 2012 as U.S. Pat. No. 8,218,873, which is a divisional of Ser. No.12/568,130 filed Sep. 28, 2009 and issued Mar. 1, 2011 as U.S. Pat. No.7,899,252, which is a divisional of Ser. No. 11/204,901 filed Aug. 15,2005 and issued Mar. 16, 2010 as U.S. Pat. No. 7,680,324, which is acontinuation-in-part of Ser. No. 09/992,942 filed Nov. 5, 2001 andissued Mar. 21, 2006 as U.S. Pat. No. 7,016,532, which claims priorityto provisional application No. 60/317,521 filed Sep. 5, 2001 andprovisional application No. 60/246,295 filed Nov. 6, 2000. U.S.application Ser. No. 11/204,901 filed Aug. 15, 2005 and issued Mar. 16,2010 as U.S. Pat. No. 7,680,324 also claims priority to provisionalapplication No. 60/630,524 filed Nov. 22, 2004 and provisionalapplication No. 60/625,526 filed Nov. 4, 2004. These and all otherreferenced patents and applications are incorporated herein by referencein their entirety. Where a definition or use of a term in a referencethat is incorporated by reference is inconsistent or contrary to thedefinition of that term provided herein, the definition of that termprovided herein is deemed to be controlling.

FIELD OF THE INVENTION

The field of the invention is digital imaging.

BACKGROUND

Several years ago the present inventors pioneered the concept of usingdigitally captured images to identify objects within the images, andthen using such identifications to retrieve information from variousdatabases. Examples include:

-   -   Using a local device (cell phone, digital camera, PDA or other        device) to capture an image of an object in an art museum,        identifying the object from the image data, and then providing        the user with information regarding the object (i.e., about or        relating to the object);    -   Using a local device (cell phone, digital camera, PDA or other        device) to capture an image of an automobile as it drives along        a road, identifying the make and model from the image data, and        then providing a user with a link to a website relating to that        particular make and model;    -   Using a local device (cell phone, digital camera, PDA or other        device) to capture an image of a bar code, logo, or other        indicia in a magazine, using information contained in the        indicia to identify a product, and providing a telephone number        or other contact information relating to that product;    -   Using a local device (cell phone, digital camera, PDA or other        device) to photograph a billboard of a restaurant, identifying        the restaurant from a barcode, special target, written language,        or other information contained in the photograph, and using that        information to access a database to provide the user with        restaurant's location, menu, or telephone number; and    -   Using a local device (cell phone, digital camera, PDA or other        device) to capture an image of a sign at a sports stadium, using        information extracted from the image to automatically purchase        an entry ticket for the user, and providing the user with an        entry code that can be used to bypass the long lines of ordinary        ticket purchasers.

In such embodiments it was specifically contemplated that analysis ofthe images could be performed locally (i.e. on the cell phone, PDA orother device capturing the image), distally at a server, or morepreferably using some combination of the two. It was also contemplatedthat any available database could be accessed to provide the returnedinformation, including publicly accessible databases on the Internet. Itwas not appreciated, however, that one could integrate these conceptswith the searching capabilities of standard Search Engines.

In the 1990s Yahoo!™ introduced the idea of indexing web pagesaccessible on Internet, and providing a Search Engine that to access theindex. Since that time dozens of other searching systems have beendeveloped, which use all manner of various search methods, algorithms,hardware and/or software. All such systems and methods that accept userinputs of Key Information, and then utilize such Key Information toprovide the user with information of interest, are referred to herein asSearch Engines. The user, of course, can be a natural person, as well asa device (computing or otherwise), algorithm, system, organization, orany other entity. In searching for information, a Search Engine canutilize any suitable search domain, including for example:

-   -   A database (including for example a relational database, an        object database, or an XML database).    -   A network of resources including for example web pages        accessible within the Internet; and    -   A public or private collection of documents or information        (e.g., documents, information, and/or messages of a company or        other organization(s)) such as that maintained by LEXIS™.

In a typical search, Key Information is provided to the Search Engine inthe form of key words comprising text, numbers, strings, or othermachine-readable information types. The Search Engine then searches itsindices of web pages for matches, and returns to the user a hyperlinkedlisting of Internet Uniform Resource Locators (“URLs”), as well as somebrief display of context in which the key word(s) are used. Theinformation of interest can sometimes be found in the hyperlinkedlisting, but is more frequently found by linking directly to the listedweb pages.

Providing Key Information to Search Engines in the form of text stringshas inherent difficulties. It involves strategy in the selection of thetext to be entered, and even with respect to the format of the keywords(for example using wildcards). Another difficulty is that smallcomputing and/or telephony devices (e.g. telephones, both mobile andnon-mobile), have small and/or limited keyboards, thus making text entrydifficult.

SUMMARY OF THE INVENTION

The present invention provides apparatus, systems and methods in which:(a) a digital photograph, video, MPEG, AVI, or other image is capturedusing a camera equipped cell phone, PDA, or other image capturingdevice; (b) key words or other search criteria are automaticallyextracted or derived from image; (c) the search criteria are submittedto a Search Engine to obtain information of interest; and (d) at least aportion of the resulting information is transmitted back locally to, ornearby, the device that captured the image.

Some images so utilized will include symbolic content that is sufficientin and of itself to be relatively non-ambiguous. Such symbolic content,for example, can be a telephone number or a web-site address. In suchinstances the symbolic content search criteria can advantageously beutilized as a literal in the search criteria. In other instancessignificant additional processing can be needed. For example, an imageof an automobile will likely need to be processed to determine the makeand model, and that information (e.g. Mercedes™ S500™) can then betransmitted to the Search Engine to be used as key words for a search.It is also contemplated that processing of some images will result inonly best guesses. Thus, a side view of an automobile can not beanalyzable into a particular make and model, and in that case the systemcan provide more generic terms such as SUV or automobile.

In general, the present invention provides technology and processes thatcan accommodate linking objects and images to information via a networksuch as the Internet, which require no modification to the linkedobject. Traditional methods for linking objects to digital information,including applying a barcode, radio or optical transceiver ortransmitter, or some other means of identification to the object, ormodifying the image or object so as to encode detectable information init, are not required because the image or object can be identifiedsolely by its visual appearance. The users or devices can even interactwith objects by “linking” to them. For example, a user can link to avending machine by “pointing and clicking” on it. His device would beconnected over the Internet to the company that owns the vendingmachine. The company would in turn establish a connection to the vendingmachine, and thus the user would have a communication channelestablished with the vending machine and could interact with it.

The present invention contemplates any suitable decompositionalgorithms. Clearly, faster and more accurate algorithms are preferredover slower and less accurate algorithms. It is especially preferredthat algorithms are chosen such that at least some processing can takeplace locally to the device that captures the image. Such processing canin many instances eliminate the need to wirelessly transmit detailedimages, and can eliminate reliance on a distal server that might beoversubscribed. Thus, some or all of the image processing, includingimage/object detection and/or decoding of symbols detected in the imagecan be distributed arbitrarily between the mobile (client) device andthe server. In other words, some processing can be performed in theclient device and some in the server, without specification of whichparticular processing is performed in each, or all processing can beperformed on one platform or the other, or the platforms can be combinedso that there is only one platform. The image processing can beimplemented in a parallel computing manner, thus facilitating scaling ofthe system with respect to database size and input traffic loading.

It is further contemplated that some suitable algorithms will take intoaccount the position and orientation of an object with respect to theuser at the time the image was captured, which can be determined basedon the appearance of the object in an image. This can be the locationand/or identity of people scanned by multiple cameras in a securitysystem, a passive locator system more accurate than GPS or usable inareas where GPS signals cannot be received, the location of specificvehicles without requiring a transmission from the vehicle, and manyother uses.

Therefore, it is an object of the present invention to provide a systemand process for identifying digitally captured images without requiringmodification to the object.

Another object is to use digital capture devices in ways nevercontemplated by their manufacturer.

Another object is to allow identification of objects from partial viewsof the object.

Another object is to provide communication means with operative deviceswithout requiring a public connection therewith.

Various other objects, features, aspects and advantages of the presentinvention will become more apparent from the following detaileddescription of preferred embodiments of the invention, along with theaccompanying drawings in which like numerals represent like components.

BRIEF DESCRIPTION OF THE DRAWING

FIG. 1 is a schematic block diagram top-level algorithm flowchart;

FIG. 2 is an idealized view of image capture;

FIGS. 3A and 3B are a schematic block diagram of process details of thepresent invention;

FIG. 4 is a schematic block diagram of a different explanation ofinvention;

FIG. 5 is a schematic block diagram similar to FIG. 4 for cellulartelephone and personal data assistant (PDA) applications; and

FIG. 6 is a schematic block diagram for spacecraft applications.

FIG. 7 is a schematic of a system in which a local device captures andimage, a search term is automatically derived from an image, issubmitted to a search engine to produce a results set, and informationfrom the results set is sent back to the device.

DETAILED DESCRIPTION

FIGS. 1-6 are copied from the priority PCT application, PCT/US02/35407filed Nov. 5, 2002. Discussion of that those figures is set forth laterin the application.

Search Engine-Related Embodiments

In FIG. 7 a system 400 generally comprises a portable imaging device410, a distal server 420, an electronic communications network 425, anda search engine 430.

In general, the portable device 410 captures an image 412 of an object415; and transmits information 413 regarding the image to the server420. At least one of the device 410 and the server 420 derives a searchterm 421A, 421B from at least one of the image 412 and the transmittedinformation 413, respectively. At least one of the device 410 and theserver 420 cause the search term 421A, 421B to be submitted via anetwork 425 to a search engine 430 that uses an index 432 of web pagesor other information. The search engine then uses the search term 421A,421B to produce a results set 434, and causes at least a portion of theresults set 434 to be transmitted back to the portable device 410. Inthe above discussion it should be appreciated that information regardingthe image can include the entire image, one or more subsets of theimage, as well as a name or other information derived from the image,but not contained within the image. It should also be appreciated thatone could use a proxy server between his/her portable device and theserver. In short, the present application contemplates using anycomplexity of circuitous communication between the mobile client andserver—not necessarily a direct connection.

Device 410 can be a cell phone, PDA, laptop computer, or any otherportable device that optically captures an image. By “opticallycaptures” is meant some sort of light sensitive array, the output ofwhich can be processed to comprise a visually perceptible image. Viewedfrom another perspective, device 410 can be any camera having telephonycapability, and especially having cell phone capability. With currenttechnology, device 410 would usually have a lens or other light focusingmechanism, although it is contemplated that advances in electronics caneliminate the need for any physical focusing mechanism. The term“optically captures” is not satisfied by a device that has not opticalcomponents, and is merely capable of downloading images from theInternet or other sources.

It is certainly contemplated that the cell phone or other deviceproviding the services discussed herein would operate softwarepermitting it to do so. That software could be resident on the device,in external memory (memory card), or paged in as needed.

Object 415 (referred to as a Thing of Interest” in one or more of thepriority applications) can be any visually perceptible object,regardless of dimension. Contemplated “two dimensional objects” includeobjects in which the relevant information is substantially in twodimensional format, which includes advertisements and articles inmagazine or other print media, as well as photographs or designs onbillboards, street signs, restaurant or other business signs, usermanuals, paintings at a museum, and so forth.

Contemplated three dimensional objects include substantially allphysical objects in which the relevant information is derived from theshape of the object and/or the appearance of the surface of the object.Thus, an automobile is considered herein to have three dimensions ofrelevance where the shape or other dimensions convey information aboutthe make and model. Similarly, a window in a building can be consideredto have three dimensions of relevance where the identity of themanufacturer or distributor can be gleaned from the overall physicaldimensions, detail, and so forth. As another example, a beveragecontainer can be considered to have three dimensions; information can beobtained from the shape of the container but further information canalso be obtained from the label, printing, logos, text, or other suchvisible markings on the container (obtaining information from visiblemarkings on the container enables discrimination between differentcontainers that have identical physical shape). Contemplated threedimensional objects include substantially all physical objects in whichthe relevant information is derived from changes over time. For example,the speed of a bird or its flight patterns, or a gesture of a person,can be captured in multiple images over a period of time, and can berelevant information, and can be reduced to search terms (referred to asKey Information in one or more of the priority documents) for submissionto a search engine. Of course, many objects will be considered to havetwo, three or four dimensions of relevance herein. Thus, relevantinformation for an automobile can be provided by each of atwo-dimensional logo on the side of the vehicle, the three dimensionalshape of the vehicle, and its four dimensional acceleration or handlingfeatures.

It is especially contemplated that objects can include animate andinanimate objects. Among animate objects are included faces of people,and biometric information such as the fingerprint pattern on a humanfinger, an iris of a person, and so forth.

Image 412 is contemplated to be any array of pixels. In most cases thepixels will be regularly arranged, but that is not absolutely necessary.In most cases the pixels also will number greater than 19,200 (160×120),such as 78,800 (320×240) but they can number few than that. Morepreferred images have greater pixel counts, including for example,256,000 (640×400), more preferably at least 2 million, and even morepreferably at least 4 million. It is not necessary that the image beactually constructed at the portable device. Thus, a statement that “theportable device captures an image of an object” includes situationswhere the device receives and derives data from light emitted orreflected from the object, even if the data is never presented to a useras a visually perceptible image, and even if the data is sent to adistal server without ever being collected into an image by the device.

The information transmitted to the server can comprise any relevantinformation regarding the contents of the image. Thus, information 413could comprise the entire image, or a portion of the image. For example,where a user takes a picture of a bar code (whether 2D, 3D or any otherconfiguration, the device 410 could process the image 412 to removecolor and all background except the bar code itself, and then merelysend the portion of the image containing the bar code as the transmittedinformation 413. In other cases it is contemplated that the device 410could sufficiently process the image 413 to derive one or more keywords,and then send only the keyword(s) as the transmitted information 413.All possible combinations are also contemplated. Thus, a user might takea photograph of a Gucci™ handbag, the device 412 might derive the word“Gucci” from the image, subtract out background except for the handbag,and then transmit: (a) the word “Gucci”; and (b) the image of thehandbag as the transmitted information 413. In such instances theprocess can be iterative. Thus, the device might initially transmit theword “Gucci” as the first transmitted information, receive a results setfrom the search engine indicating clothing accessories, and thensubtract out background except for the handbag, and transmit the imageof the handbag as the second transmitted information. As discussedabove, it is specifically contemplated that the device 410 could sendthe server 420 numerical/digital data that is mathematically derivedfrom the image. Examples include image features and characteristics thatthe server 420 could use in the server recognition process, withouttransmitting the original image.

As should be apparent by now, the transmitted information need not belimited to image information. Sights, sounds, text, and all sorts ofother information can be included in the transmitted information, someof which can be derived directly from the image, and some of which canbe derived indirectly from the image. In addition, the device 410 canalso capture non-visual information such as sounds, and that informationcan also be transmitted. Thus, it is contemplated that the device couldcapture the sounds of a frog, capture an image of a lake or forest, andsend both to be used as (or further analyzed into) search terms.

Distal server 420 is distal in the sense that it has no hard-wired linkto device 410. Server 420 can be a single device, as well as any numberof devices coupled together, as for example in a server farm. All mannerof suitable servers are contemplated. Thus, servers can use anyreasonable hardware, operate using any reasonable software,communications protocols, and so forth.

In terms of interaction with the device, the various analytical tasksdiscussed above can allocated in any suitable manner between server 420and device 410. For example, in the iterative operation discussed abovewith respect to the Gucci™ handbag, it is contemplated that the device410 could analyze the image sufficiently to transmit the term “Gucci” asan initial search term to the search engine 430, and the server 420could then undertake the tasks of subtracting out background of theimage except for the handbag, and transmitting the image of the handbagas a second search term.

In another example, the server 420 could determine that the originalimage provided insufficient information, and send a message to the userthrough the device 410, directing the user to take another image (suchas from another angle, closer, or with greater detail.). Indeed, theserver 420 could direct the user to take an image of another objectentirely, in order to help determine identity of the first object. Thus,the user could take a first image of a payment display at a ball game,provide that image to the server for identification, and then instructthe user to take an image of a credit card against which the user wantsto be billed for entrance into the ball game. The server could thenprocess the payment against that credit card, and provide an entry codethat the user could type to pass through an electronically controlledgate.

In still another example, a user could use his cell phone to capture animage of a screwdriver set at a hardware store, and the cell phone couldtransmit the information derived from the image to Google™ or some othersearch engine to find comparison prices. The server 420 could theninstruct the user to turn over the packaging and take another image ofthe set, this time from the back side of the packaging. In this waythere is iterative interaction among the user's device, the server, andthe search engine.

It should also be appreciated that there are embodiments in which thesearch engine never communicates with the portable device. For example,the server might do the search query, get results, and provide them tothe portable device, or even to a television or other device besides theportable device.

The phase “search engine” is contemplated herein to include any systemdedicated to the indexing, searching and retrieval of information. Themost familiar search engines such as Google™, Yahoo!™, MSN™, and AltaVista™ focus mostly or entirely on indexing web pages from the WorldWide Web portion of the Internet. Other search engines, such asLexis/Nexis™ focus on indexing proprietary collections of data, whichcan include links to Internet Web pages. The phase “search term” iscontemplated herein to include any keys or other information used by thesearch engines to access their indexing system. In the case of most webbased search engines, the keys are currently text. In such instances auser typically enters one or more key words, where the term “key word”is used in an extremely broad sense to include: (a) words that wouldlikely be found in a dictionary; (b) proper names, number strings andother terms that are not found in any dictionary; as well as (c)characters that are interpreted as wild cards, truncations and so forth.Such search engines are already starting to experiment with use ofnon-text keys, including for example images and/or sounds. All suchpossible keys fall within the scope of contemplated search terms.

Thus, contemplated search terms include key words, a portion of animage, as well as a logo, bar code or other symbol. It is specificallycontemplated that in some instances an image will contain a literal of asearch terms (e.g. the name of a movie on a movie poster), in someinstances an image will not contain such a literal (e.g. a picture of atree or other plant, where the search term is the name of the plant). Ineither case the device and/or the server in any combination can performone or more of the tasks of deriving the search term and submitting itto one or more search engines.

Network 425 can be any workable electronic network, including public andprivate access networks, and combinations of the two. Preferred networksinclude the Internet, the upcoming Internet II, cell phone networks, andso forth. Although not expressly shown, the communication lines in FIG.7 are all contemplated to be one- or two-way communications asappropriate. Moreover, it is contemplated that multiple networks willusually be involved. Thus, for example, communications between device410 and server 420 will very likely take place over some combination ofcell phone (not shown) and Internet networks (e.g. 425), whilecommunications between server and search engine will very likely takeplace over some combination of Internet and local server farm networks.

The results set 434 can be of any size and composition, but most likelywill be tailored to accommodate the device 410. It does very littlegood, for example, to transmit dozens of web pages to a cell phone,which has insufficient display area to properly view them. Thus, it iscontemplated that the results set 434 can be whittled down or otherwiseprocessed by the server (which of course is indicated generically bynumeral 420 and need not be the very same box as utilized earlier in thetransmission of the transmitted information 413) before being sent tothe device 410. Thus, the server 420 or some other processor can processresults before providing them to the device 410, such as where thesearch terms are submitted to the search engine by the server 420 ratherthan by the device 410. But the device 410 can also access the searchengine directly using search information provided by the server. Fourcontemplated search modes include the following:

1. The server 420 composes a search URL (consisting of search engineaddress and key words) and sends it to the portable device 410. Theportable device then executes the search engine query by sending thesearch URL to the search engine, and the search engine sends one or moreweb pages back to the portable device.

2. The server 420 sends keywords, and optionally also a search engineaddress, to portable device 410. The portable device composes a searchURL, sends the search query to the search engine, and receives one ormore web pages in response.

3. The server 420 sends the search query to the search engine, andreceives a response. The server optionally processes the search response(which could be in any forth) and provides some result to portabledevice. The result could, for example, comprise a file sent to theportable device, or a web page on some server, with URL of that web pagesent to the portable device.

4. In any of the above modes, or in “direct linking” mode, the resultmight not be a search results page, but instead some other type ofinformation or action. For example, a server could identify an object,and thereupon send a code to another server, which causes an action tooccur. An example of this is clicking on a vending machine with a cellphone to buy something from the machine. Another example is clicking ona TV listing in a newspaper, causing the server to change the channel ofthe television in front of the user.

Thus, a statement that “the search engine causes at least a portion ofthe results set 434 to be transmitted back to the portable device 410”should be interpreted herein to mean that at least some informationrelating to the results set, which information can or can not beincluded verbatim in the results set, is transmitted back to the device,whether directly or indirectly by the search engine. It is particularlycontemplated that a results set could include at least one hyperlinkedaddress.

It is specifically contemplated that results sets can include thefollowing types of information: Uniform Resource Locator (URL); UniformResource Identifier (URI); Internet Protocol (IP) address; telephonenumber; radio frequency or channel; television frequency or channel; andphysical location or address. The result(s) displayed to the user can beinteractive. In such a case, the user can take further action byinteracting directly with the object, by linking to a referenced webpage, or some combination of the two. Or, as discussed above, theresults could cause another server/computer or machine to perform someaction, such as dispensing a product or changing a channel.

From a method perspective, methods of using a search engine to obtaininformation are contemplated comprising: using a cell phone enabledportable device to take an image of an object; running computer softwarethat automatically derives a first search term from at least a portionthe image; submitting the first search term to the search engine; andtransmitting the information to the device. Some preferred methodsfurther comprise using the device to take a second image of the object;running the computer software to derive a second search term from atleast a portion of the second object; and submitting the second searchterm along with the first search term to the search engine. Otherpreferred methods include the step of submitting the first search termcan advantageously comprise: sending at least the portion of the imageto a distal server; running the software on the server; and the serversending the search term to the search engine. Still other preferredmethods include a distal server providing the search term(s) to thedevice, with the device submitting the search term(s) to the searchengine.

Analysis of data (whether visual or otherwise) to produce search termscan be accomplished in any suitable manner. Useful techniques include,for example, signal analysis, Fourier analysis, pattern matching,pattern recognition, image recognition, object recognition, waveletanalysis, component analysis, etc.

EXAMPLES

Search terms can be advantageously derived from attribute(s) includingname, type, size, color, position, and location, with the derivationperformed by algorithm, table/database look-up, hardware device, orother suitable means. For example, consider an example wherein theobject being imaged is a poster for the color version of a movie named“Modem Times,” starring Charlie Chaplin. The device 410 and/or theserver 420 can identify as attributes the text “Modern Times MoviePoster” and “Color Version”, and can from that determine search termssuch as “Modern Times”, “Colorized”, “Charlie Chaplin”, and “Classicmovies”. The attributes and search terms in this case could bedetermined by a human user, a machine algorithm, or some combination ofthe two.

In another example, a user takes an image of a notebook computer. Analgorithm detects the notebook computer in the image and identifies itas being a Model 5, made by ZZZ Corporation. The algorithm thendetermines the attribute “ZZZ Model 5” and the corresponding searchterms, “online shopping”, “ZZZ”, “notebook”, and “5”.

An embodiment of particular interest comprises a search using imageand/or video input. The device captures one or more of single images,multiple images, motion imagery, and/or video (each and all of theseinformation types are known henceforth as “imagery”). Indeed, theimagery can be captured by more than one electronic imaging device, suchas a digital camera, a camera-equipped mobile telephone, or a securitycamera, or multiple such devices. An object or objects are identified inthe imagery via image/object recognition techniques (software and/orhardware). The identity of the object(s) is used to look up, in atable/database, a set of text keywords search terms, which are thenprovided to a search engine. The search engine returns informationaddresses (e.g., in the form of a web page with hyperlinks) that arepertinent to the objects identified in the imagery. The user thenaccesses information and/or computing resources based upon at least oneof the information addresses.

Another contemplated embodiment comprises a search using sign languageinput. Imagery is captured of a person gesturing in sign language.Image/motion recognition techniques are used to translate the signlanguage into text or other machine-understandable data, such as text.The machine-understandable data is either sent directly to a searchengine or is used to determine search terms that in turn are sent to asearch engine. The search engine returns information addresses pertinentto the meaning of the sign language or portions thereof.

Still another embodiment comprises search using speech input. There,human speech is captured by a sound capture and/or recording device.Speech recognition processing is then used to recognize the speech andtranslate it into machine-understandable data (such as text). Themachine-understandable data is either sent directly to a search engineor is used to determine search terms that are in turn sent to a searchengine. The search engine returns information addresses pertinent to themeaning of the human speech or portions thereof.

An especially preferred embodiment of this invention comprises a searchusing camera-equipped portable device. There, imagery is captured by aportable device with a network connection (for example, a cellulartelephone). Image recognition processing is then used to recognize atleast one object in the imagery. The recognition process can beperformed in the portable device, in a distant server, or distributedand/or otherwise shared and performed partly in each. Based on theidentity of the object(s), text keywords corresponding to the object(s)are retrieved from a database. As with the image recognition, it ispreferred that this process occur on a distant server, although it canbe performed on the portable device or on a combination of the portabledevice and the server. The text keywords are then sent to a searchengine. This is accomplished by sending the keywords to an Internetsearch engine web site as an HTTP transaction, with the search keywordsembedded in the URL that is sent to the search engine web site. It ispreferred that the HTTP transaction be initiated from the portabledevice, so that the search results are returned directly to the portabledevice. In this case, the search keywords would generally first be madeavailable on the portable device; if they were determined on the distantserver then they are first sent from the server to the portable device.The search engine results are returned to the portable device as a webpage which can then be displayed in the web browser of the portabledevice. If the HTTP transaction was initiated by the server, then theresults web page is made available for viewing on the portable device byone or more various means (the address of the results web page can besent to the portable device, or the entire web page can be sent to theportable device, or the web page can be stored or converted into anotherform on the server after which the portable device is directed to theaddress of the stored or converted page, etc.)

Image Analysis

Preferred image analysis techniques are described in the following, inwhich FIG. 1 shows the overall processing flow and steps. These stepsare described in further detail in the following sections.

In FIG. 2, for image capture 10, the user 12 utilizes a computer, mobiletelephone, personal digital assistant, or other similar device 14equipped with an image sensor (such as a CCD or CMOS digital camera).The user 12 aligns the sensor of the image capture device 14 with theobject 16 of interest. The linking process is then initiated by suitablemeans including: the user 12 pressing a button on the device 14 orsensor; by the software in the device 14 automatically recognizing thatan image is to be acquired; by user voice command; or by any otherappropriate means. The device 14 captures a digital image 18 of thescene at which it is pointed. This image 18 is represented as threeseparate 2-D matrices of pixels, corresponding to the raw RGB (Red,Green, Blue) representation of the input image. For the purposes ofstandardizing the analytical processes in this embodiment, if the device14 supplies an image in other than RGB format, a transformation to RGBis accomplished. These analyses could be carried out in any standardcolor format, should the need arise.

If the server 20 is physically separate from the device 14, then useracquired images are transmitted from the device 14 to the ImageProcessor/server 20 using a conventional digital network or wirelessnetwork means. If the image 18 has been compressed (e.g. via lossy JPEGDCT) in a manner that introduces compression artifacts into thereconstructed image 18, these artifacts can be partially removed by, forexample, applying a conventional despeckle filter to the reconstructedimage prior to additional processing.

Image type determination 26 can be accomplished with a discriminatoralgorithm which operates on the input image 18 and determines whetherthe input image contains recognizable symbols, such as barcodes, matrixcodes, or alphanumeric characters. If such symbols are found, the image18 is sent to the decode symbol 28 process. Depending on the confidencelevel with which the discriminator algorithm finds the symbols, theimage 18 also can or alternatively contain an object of interest and cantherefore also or alternatively be sent to the Object Image branch ofthe process flow. For example, if an input image 18 contains both abarcode and an object, depending on the clarity with which the barcodeis detected, the image can be analyzed by both the Object Image andSymbolic Image branches, and that branch which has the highest successin identification will be used to identify and link from the object.

The image can then be analyzed to determine the location, size, andnature of the symbols in the decode symbol 28. The symbols arepreferably analyzed according to their type, and their contentinformation is extracted. For example, barcodes and alphanumericcharacters will result in numerical and/or text information.

For object images, one can advantageously perform a “decomposition”, inthe input image decomposition step 34, of a high-resolution input imageinto several different types of quantifiable salient parameters. Thisallows for multiple independent convergent search processes of thedatabase to occur in parallel, which greatly improves image match speedand match robustness in the database matching 36. The best match 38 fromeither the decode symbol 28, or the image database matching 36, or both,is then determined. If a specific URL (or other online address) isassociated with the image, then an URL Lookup 40 is performed and theInternet address is returned by the URL Return 42. Code examples are setforth in the priority documents, as well as further detail, includingsegmentation, segment group generation, bounding box generation,geometric normalization, wavelet decomposition, color cubedecomposition, shape decomposition, low-resolution grayscale imagegeneration, grayscale comparison, wavelet comparison, color cubecomparison, and calculation of combined match score.

FIGS. 3A and 3B show a preferred process flow that can occur within adatabase matching operation. The algorithm is presented here ascontaining four nested loops with four parallel processes inside theinnermost loop. This structure is for presentation and explanation only.Any actual implementation, although most likely performing the sameoperations at the innermost layer, can have a different structure inorder to achieve the maximum benefit from processing speed enhancementtechniques such as parallel computing and data indexing techniques. Itis also important to note that the loop structures can be implementedindependently for each inner comparison, rather than the shared approachshown in the FIGS. 3A and 3B.

Preferably, parallel processing is used to divide tasks between multipleCPUs (central processing units) and/or computers. The overall algorithmmay be divided in several ways, such as:

Sharing the Outer Loop In this technique, all CPUs run the entirealgorithm, including the outer loop, but one CPU runs the loop for thefirst N cycles, another CPU for the second N cycles, all simultaneously.Sharing the Comparison In this technique, one CPU performs the loopfunctions. When the comparisons are performed, they are each passed to aseparate CPU to be performed in parallel. Sharing the database Thistechnique entails splitting database searches between CPUs, so that eachCPU is responsible for searching one section of the database, and thesections are searched in parallel by multiple CPUs. This is, in essence,a form of the “Sharing the Outer Loop” technique described above.

Actual implementations can be some combination of the above techniquesthat optimizes the process on the available hardware.

Another technique employed to maximize speed is data indexing. Thistechnique involves using a priori knowledge of where data resides toonly search in those parts of the database that contain potentialmatches. Various forms of indexing may be used, such as hash tables,data compartmentalization (i.e., data within certain value ranges arestored in certain locations), data sorting, and database table indexing.An example of such techniques is, in the shape comparison algorithm, ifa database is to be searched for an entry with an area with a value ofA, the algorithm would know which database entries or data areas havethis approximate value and would not need to search the entire database.

FIG. 4 shows a simplified configuration of an alternative analyticaltechnique. Boxes with solid lines represent processes, software,physical objects, or devices. Boxes with dashed lines representinformation. The process begins with an object of interest: the targetobject 100. In the case of consumer applications, the target object 100could be, for example, beverage can, a music CD box, a DVD video box, amagazine advertisement, a poster, a theatre, a store, a building, a car,or any other object that user is interested in or wishes to interactwith. In security applications the target object 100 could be, forexample, a person, passport, or driver's license, etc. In industrialapplications the target object 100 could be, for example, a part in amachine, a part on an assembly line, a box in a warehouse, or aspacecraft in orbit, etc.

The terminal 102 is a computing device that has an “image” capturedevice such as digital camera 103, a video camera, or any other devicethat an convert a physical object into a digital representation of theobject. The imagery can be a single image, a series of images, or acontinuous video stream. For simplicity of explanation this documentdescribes the digital imagery generally in terms of a single image,however the invention and this system can use all of the imagery typesdescribed above.

After the camera 103 captures the digital imagery of the target object100, image preprocessing 104 software converts the digital imagery intoimage data 105 for transmission to and analysis by an identificationserver 106. Typically a network connection is provided capable ofproviding communications with the identification server 106. Image data105 is data extracted or converted from the original imagery of thetarget object 100 and has information content appropriate foridentification of the target object 100 by the object recognition 107,which can be software or hardware. Image data 105 can take many forms,depending on the particular embodiment of the invention. Specificexamples are given in the priority documents.

The image data 105 is sent from the terminal 102 to the identificationserver 106. The identification server 106 receives the image data 105and passes it to the object recognition 107.

The identification server 106 is a set of functions that usually willexist on computing platform separate from the terminal 102, but couldexist on the same computing platform. If the identification server 106exists on a separate computing device, such as a computer in a datacenter, then the transmission of the image components 105 to theidentification server 106 is accomplished via a network or combinationof networks, such a cellular telephone network, wireless Internet,Internet, and wire line network. If the identification server 106 existson the same computing device as the terminal 102 then the transmissionconsists simply of a transfer of data from one software component orprocess to another.

Placing the identification server 106 on a computing platform separatefrom the terminal 102 enables the use of powerful computing resourcesfor the object recognition 107 and database 108 functions, thusproviding the power of these computing resources to the terminal 102 vianetwork connection. For example, an embodiment that identifies objectsout of a database of millions of known objects would be facilitated bythe large storage, memory capacity, and processing power available in adata center it is very difficult to have such computing power andstorage in a portable device. Whether the terminal 102 and theidentification server 106 are on the same computing platform or separateones is an architectural decision that depends on system response time,number of database records, image recognition algorithm computing powerand storage available in terminal 102, etc., and this decision must bemade for each embodiment of the invention. Based on current technology,in most embodiments these functions will be on separate computingplatforms.

The overall function of the identification server 106 is to determineand provide the target object information 109 corresponding to thetarget object 100, based on the image data 105.

The object recognition 107 and the database 108 function together to:

-   -   1. Detect, recognize, and decode symbols, such as barcodes or        text, in the image.    -   2. Recognize the object (the target object 100) in the image.    -   3. Provide the target object information 109 that corresponds to        the target object 100. The target object information 109 usually        (depending on the embodiment) includes an information address        corresponding to the target object 100.

The object recognition 107 detects and decodes symbols, such as barcodesor text, in the input image. This is accomplished via algorithms,software, and/or hardware components suited for this task. Suchcomponents are commercially available (The HALCON software package fromMVTec is an example). The object recognition 107 also detects andrecognizes images of the target object 100 or portions thereof. This isaccomplished by analyzing the image data 105 and comparing the resultsto other data representing images of a plurality of known objects,stored in the database 108, and recognizing the target object 100 if arepresentation of target object 100 is stored in the database 108.

In some embodiments the terminal 102 includes software, such as a webbrowser (the browser 110), that receives an information address,connects to that information address via a network or networks, such asthe Internet, and exchanges information with another computing device atthat information address. In consumer applications the terminal 102 canbe a portable cellular telephone or Personal Digital Assistant equippedwith a camera 103 and wireless Internet connection. In security andindustrial applications the terminal 102 can be a similar portablehand-held device or can be fixed in location and/or orientation, and canhave either a wireless or wire line network connection.

Other object recognition techniques also exist and include methods thatstore 3-dimensional models (rather than 2-dimensional images) of objectsin a database and correlate input images with these models of the targetobject is performed by an object recognition technique of which many areavailable commercially and in the prior art. Such object recognitiontechniques usually consist of comparing a new input image to a pluralityof known images and detecting correspondences between the new inputimage and one of more of the known images. The known images are views ofknown objects from a plurality of viewing angles and thus allowrecognition of 2-dimensional and 3-dimensional objects in arbitraryorientations relative to the camera 103.

FIG. 4 shows the object recognition 107 and the database 108 as separatefunctions for simplicity. However, in many embodiments the objectrecognition 107 and the database 108 are so closely interdependent thatthey can be considered a single process.

It is usually desirable that the database 108 be scalable to enableidentification of the target object 100 from a very large plurality (forexample, millions) of known objects in the database 108. The algorithms,software, and computing hardware must be designed to function togetherto quickly perform such a search. An example software technique forperforming such searching quickly is to use a metric distance comparisontechnique for comparing the image data 105 to data stored in thedatabase 108, along with database clustering and multi-resolutiondistance comparisons. This technique is described in “Fast ExhaustiveMulti-Resolution Search Algorithm Based on Clustering for EfficientImage Retrieval,” by Song, Kim, and Ra, 2000.

In addition to such software techniques, a parallel processing computingarchitecture can be employed to achieve fast searching of largedatabases. Parallel processing is particularly important in cases wherea non-metric distance is used in object recognition 107, becausetechniques such database clustering and multi-resolution search can notbe possible and thus the complete database must be searched bypartitioning the database across multiple CPUs.

As described above, the object recognition 107 can also detectidentifying marks on the target object 100. For example, the targetobject 100 can include an identifying number or a barcode. Thisinformation can be decoded and used to identify or help identify thetarget object 100 in the database 108. This information also can bepassed on as part of the target object information 109. If theinformation is included as part of the target object information 109then it can be used by the terminal 102 or content server 111 toidentify the specific target object 100, out of many such objects thathave similar appearance and differ only in the identifying marks. Thistechnique is useful, for example, in cases where the target object 100is an active device with a network connection (such as a vendingmachine) and the content server establishes communication with thetarget object 100. A combination with a Global Positioning System canalso be used to identify like objects by their location.

The object recognition 107 can be implemented in hardware, software, ora combination of both. Examples of each category and additional detailsare set forth in one or more of the priority documents.

In most embodiments the browser 110 will be a web browser, embedded inthe terminal 102, capable of accessing and communicating with web sitesvia a network or networks such as the Internet. In some embodiments,however, such as those that only involve displaying the identity,position, orientation, or status of the target object 100, the browser110 can be a software component or application that displays or providesthe target object information 109 to a human user or to another softwarecomponent or application.

In embodiments wherein the browser 110 is a web browser, the browser 110connects to the content server 111 located at the information address(typically an Internet URL) included in the target object information109. This connection is effected by the terminal 102 and the browser 110acting in concert. The content server 111 is an information server andcomputing system. The connection and information exchanged between theterminal 102 and the content server 111 generally is accomplished viastandard Internet and wireless network software, protocols (e.g. HTTP,WAP, etc.), and networks, although any information exchange techniquecan be used. The physical network connection depends on the systemarchitecture of the particular embodiment but in most embodiments willinvolve a wireless network and the Internet. This physical network willmost likely be the same network used to connect the terminal 102 and theidentification server 106.

The content server 111 sends content information to the terminal 102 andbrowser 110. This content information usually is pertinent to the targetobject 100 and can be text, audio, video, graphics, or information inany form that is usable by the browser 110 and terminal 102. Theterminal 102 and browser 110 send, in some embodiments, additionalinformation to the content server 111. This additional information canbe information such as the identity of the user of the terminal 102 orthe location of the user of the terminal 102 (as determined from a GPSsystem or a radio-frequency ranging system). In some embodiments suchinformation is provided to the content server by the wireless networkcarrier.

The user can perform ongoing interactions with the content server 111.For example, depending on the embodiment of the invention and theapplications, the user can:

-   -   Listen to streaming audio samples if the target object 100 is an        audio recording (e.g., compact audio disc).    -   Purchase the target object 100 via on-line transaction, with the        purchase amount billed to an account linked to the terminal 102,        to the individual user, to a bank account, or to a credit card.

In some embodiments the content server 111 can reside within theterminal 102. In such embodiments, the communication between theterminal 102 and the content server 111 does not occur via a network butrather occurs within the terminal 102.

In embodiments wherein the target object 100 includes or is a devicecapable of communicating with other devices or computers via a networkor networks such as the Internet, and wherein the target objectinformation 109 includes adequate identification (such as a sign,number, or barcode) of the specific target object 100, the contentserver 111 connects to and exchanges information with the target object100 via a network or networks such as the Internet. In this type ofembodiment, the terminal 102 is connected to the content server 111 andthe content server 111 is connected to the target object 100. Thus, theterminal 102 and target object 100 can communicate via the contentserver 111. This enables the user to interact with the target object 100despite the lack of a direct connection between the target object 100and the terminal 102.

FIG. 5 shows an embodiment that uses a cellular telephone, PDA, or suchportable device equipped with computational capability, a digitalcamera, and a wireless network connection, as the terminal 202corresponding to the terminal 102 in FIG. 4. In this embodiment, theterminal 202 communicates with the identification server 206 and thecontent server 211 via networks such as a cellular telephone network andthe Internet.

This embodiment can be used for applications such as the following(“user” refers to the person operating the terminal 202, and theterminal 202 is a cellular telephone, PDA, or similar device, and “pointand click” refers to the operation of the user capturing imagery of thetarget object 200 and initiating the transfer of the image data 205 tothe identification server 206).

The user “points and clicks” the terminal 202 at a compact disc (CD)containing recorded music or a digital video disc (DVD) containingrecorded video. The terminal 202 browser connects to the URLcorresponding to the CD or DVD and displays a menu of options from whichthe user can select. From this menu, the user can listen to streamingaudio samples of the CD or streaming video samples of the DVD, or canpurchase the CD or DVD.

The user “points and clicks” the terminal 202 at a print mediaadvertisement, poster, or billboard advertising a movie, musicrecording, video, or other entertainment. The browser 210 connects tothe URL corresponding to the advertised item and the user can listen tostreaming audio samples, purchase streaming video samples, obtain showtimes, or purchase the item or tickets.

The user “points and clicks” the terminal 202 at a television screen tointeract with television programming in real-time. For example, theprogramming could consist of a product promotion involving a reducedprice during a limited time, users that “point and click” on thistelevision programming during the promotion are linked to a web site atwhich they can purchase the product at the promotional price. Anotherexample is a interactive television programming in which users “pointand click” on the television screen at specific times, based on theon-screen content, to register votes, indicate actions, or connect to aweb site through which they perform real time interactions with theon-screen program.

The user “points and clicks” on an object such as a consumer product, anadvertisement for a product, a poster, etc., the terminal 202 makes atelephone call to the company selling the product, and the consumer hasa direct discussion with a company representative regarding thecompany's product or service. In this case the company telephone numberis included in the target object information 209. If the target objectinformation 209 also includes the company URL then the user can interactwith the company via both voice and Internet (via browser 210)simultaneously.

The user “points and clicks” on a vending machine (target object 200)that is equipped with a connection to a network such as the Internet andthat has a unique identifying mark, such as a number. The terminal 202connects to the content server 211 of the company that operates thevending machine. The identification server identifies the particularvending machine by identifying and decoding the unique identifying mark.The identity of the particular machine is included in the target objectinformation 209 and is sent from the terminal 202 to the content server211. The content server 211, having the identification of the particularvending machine (target object 200), initiates communication with thevending machine. The user performs a transaction with the vendingmachine, such as purchasing a product, using his terminal 202 thatcommunicates with the vending machine via the content server 211.

The user “points and clicks” on part of a machine, such as an aircraftpart. The terminal 202 then displays information pertinent to the part,such as maintenance instructions or repair history.

The user “points and clicks” on a magazine or newspaper article and linkto streaming audio or video content, further information, etc.

The user “points and clicks” on an automobile. The location of theterminal 206 is determined by a Global Position System receiver in theterminal 206 by cellular network radio ranging, or by another technique.The position of the terminal 202 is sent to the content server 211. Thecontent server provides the user with information regarding theautomobile, such as price and features, and furthermore, based on theposition information, provides the user with the location of a nearbyautomobile dealer that sells the car. This same technique can be used todirect users to nearby retail stores selling items appearing in magazineadvertisements that users “point and click” on.

For visually impaired people:

-   -   Click on any item in a store and the device speaks the name of        the item and price to you (the items must be in the database).    -   Click on a newspaper or magazine article and the device reads        the article to you.    -   Click on a sign (building, street sign, etc.) and the device        reads the sign to you and provides any addition pertinent        information (the signs must be in the database).

FIG. 6 shows an embodiment of the invention for spacecraft applications.In this embodiment, all components of the system (except the targetobject 300) are onboard a Spacecraft. The target object 300 is anotherspacecraft or object. This embodiment is used to determine the positionand orientation of the target object 300 relative to the Spacecraft sothat this information can be used in navigating, guiding, andmaneuvering the spacecraft relative to the target object 300. An exampleuse of this embodiment would be in autonomous spacecraft rendezvous anddocking.

This embodiment determines the position and orientation of the targetobject 300, relative to the Spacecraft, as determined by the position,orientation, and size of the target object 300 in the imagery capturedby the camera 303, by comparing the imagery with views of the targetobject 300 from different orientations that are stored in the database308. The relative position and orientation of the target object 300 areoutput in the target object information, so that the spacecraft datasystem 310 can use this information in planning trajectories andmaneuvers.

Thus, specific embodiments and applications of using image-derivedinformation as search criteria for Internet and other search engineshave been disclosed. It should be apparent, however, to those skilled inthe art that many more modifications besides those already described arepossible without departing from the inventive concepts herein. Theinventive subject matter, therefore, is not to be restricted except inthe spirit of the appended claims. Moreover, in interpreting both thespecification and the claims, all terms should be interpreted in thebroadest possible manner consistent with the context. In particular, theterms “comprises” and “comprising” should be interpreted as referring toelements, components, or steps in a non-exclusive manner, indicatingthat the referenced elements, components, or steps can be present, orutilized, or combined with other elements, components, or steps that arenot expressly referenced. Where the specification claims refers to atleast one of something selected from the group consisting of A, B, C . .. and N, the text should be interpreted as requiring only one elementfrom the group, not A plus N, or B plus N, etc.

What is claimed is:
 1. A computer implemented visual search engine comprising: a searchable database indexing a collection of data associated with a plurality of known objects, the collection indexed according to a plurality of image-derived keys; and a network-accessible search server coupled with the searchable database and, upon a processor in the server executing software instructions stored in a non-transitory computer readable memory, configured to: receive, from a mobile device over a network, image-related data from an image of a query object; derive a search query associated with the query object and including a first set of image-derived keys derived from the image-related data; submit the search query to the searchable database; receive a results set, including an information address associated with at least one known object from the plurality of brown objects, from the searchable database; and transmit at least a portion of the results set back to the mobile device over the network.
 2. The engine of claim 1, wherein the image-related data includes at least one of the following: a single image, multiple images, motion imagery, and video data.
 3. The engine of claim 1, wherein the image-related data includes at least some image-derivable keys.
 4. The engine of claim 1, wherein the image-related data includes salient parameters.
 5. The engine of claim 1, wherein the image-related data includes search terms.
 6. The engine of claim 1, wherein the search query includes attributes of the query object.
 7. The engine of claim 6, wherein the attributes include at least one of the following: a name, a type, a size, a shape, a dimension of relevance, a color, a position, a location, a make, a model, and a time.
 8. The engine of claim 1, wherein the search query and the first set of image-derivable keys are both based on at least one of the following: search terms, keywords, salient parameters, images, sounds, hashes, and know object attributes.
 9. The engine of claim 1, wherein the results set include at least one of the following: a hyperlink, an image, audio data, video data, a translation, spoken information, a web page, streaming data, product information, transaction information, account information, the information address, a code, instructions, and graphics.
 10. The engine of claim 1, wherein the plurality of known objects comprise a propriety collection of records.
 11. The engine of claim 1, wherein the plurality of known objects include at least one of the following: a box, a DVD, a poster, a logo, text, a document, a magazine, an advertisement, a car, a building, a store, a theatre, a machine, a part, a symbol, a newspaper, a product, a vending machine, a television, a person, a face, biometric information, a fingerprint, an iris, a billboard, a street sign, on-screen content, a sign language, a beverage product, printed media, a photograph, as restaurant, a piece of art, a ticket, a barcodes, a matrix code, a computer, a three dimensional object, a product promotion, and a logo.
 12. The engine of claim 1, wherein the plurality of known objects include three dimensional objects that change over time.
 13. The engine of claim 12, wherein the three dimensional objects that change over time include at least one of the following: a gesture, a pattern, an automobile, an animate object, a person's face.
 14. The engine of claim 1, wherein the at least the portion of the results set is transmitted back to the mobile device in real-time.
 15. The engine of claim 14, wherein the at least the portion of the result set enables interactivity with a machine.
 16. The engine of claim 1, wherein the network-accessible search server is further configured to generate the at least the portion of the result set by tailoring the result set to accommodate the mobile device.
 17. The engine of claim 1, wherein the information address includes at least one of the following: a URL, a URI, a hyperlink, a network address, an IP address, a telephone number, a radio channel, a television channel, and a physical location.
 18. The engine of claim 1, wherein the at least the portion of the results set comprises sorted results.
 19. The engine of claim 18, wherein the sorted results are determined based on a metric distance.
 20. The engine of claim 1, wherein the searchable database comprises multiple databases partitioned across multiple processors. 